package net.maku.express.biza.service.collectExpress;



import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;

import net.maku.express.biza.controller.collectExpress.vo.*;
import net.maku.express.biza.pojo.collectexpress.CollectExpressPojo;
import net.maku.express.biza.vo.CollectExpressSingleVO;
import net.maku.express.biza.vo.ExpressRelatedDataVO;
import net.maku.framework.common.service.BaseService;
import net.maku.framework.common.utils.Result;

public interface CollectExpressService extends BaseService<CollectExpressPojo> {

    /**
     * 查询
     * @return
     */
     Result<IPage<CollectExpressPageVO>> select(CollectExpressRequestVo collectExpressVO);

    /**
     * 新增数据
     * @param collectExpressVO
     * @return
     */
    Result<Integer> addData(CollectExpressSingleVO collectExpressVO);

    /**
     * 删除数据
     * @param id
     * @return
     */
    Result<String> deleteData(Long id);

    /**
     * 更新数据
     * @param collectExpressVO
     * @return
     */
    Result<Integer> updateData(CollectExpressSingleVO collectExpressVO);


    Result<String> getSmallSysNo(String receiptId);

    Result<String> getSysNo();

    Result<String> getSmallPSysNo();

    /**
     * 小包裹分页
     * @param
     * @return
     */
    Result<List<GoodsDetailVO>> selectSmall(Long id);



    Result<CollectExpressSingleVO> selectOne(Long id);

    Result<List<CollectExpressSelectiveVO>> selectOneList(List<Long> id);


    Result<IPage<Map>> selectPack(CollectPackRequestVO query);

    Result<List<CollectPackResponseVO>> selectPack1(Long id);

    Result<List<CollectExpressVO>> selectOrder(CollectExpressOrderRequestVO collectExpressOrderRequestVO);

    Result<List<CollectExpressOrderVO>> selectOrder1(Long id);


    Result<List<LogisticsResponseVO>> selectLogistics(Long id);

    Result<Integer> addLogistics(LogisticsAddRequestVO addRequestVO);

    Result<Integer> deleteLogistics(Long id);

    /**
     * 从数据字典获取相关信息
     * @return
     */
    public Result<ExpressRelatedDataVO> getExpressRelatedData();

}
